package lbtest;

// interface，就是比抽象类还要抽象的纯抽象接口，因为它连字段都不能有。
// 如果一个抽象类没有字段，所有方法全部都是抽象方法 就可以把该抽象类改写为接口：interface
// 一个interface可以继承自另一个interface。interface继承自interface使用extends，它相当于扩展了接口的方法。
interface Biology {

    // interface是一个纯抽象类，所以它不能定义实例字段。但是，interface是可以有静态字段的，并且静态字段必须为final类型
    // interface的字段只能是public static final类型 修饰符也可以去掉
    public static final int MALE = 1;


    void testInterface();

    // default方法的目的是，当我们需要给接口新增一个方法时，会涉及到修改全部子类。如果新增的是default方法，那么子类就不必全部修改，只需要在需要覆写的地方去覆写新增方法。
    // default方法和抽象类的普通方法是有所不同的。因为interface没有字段，default方法无法访问字段，而抽象类的普通方法可以访问实例字段。
    default void testDefault () {
        System.out.println("testDefault");
        testInterface();
    }

}

